﻿using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Demo.DtoParameters;
using Demo.Entities;
using Demo.Helpers;

namespace Demo.Repository
{
    public interface ICompanyRepository
    {
        Task<PageList<Company>> GetCompaniesAsync(CompanyDtoParameters parameters);

        Task<Company> GetCompanyAsync(Guid companyId);

        Task<IEnumerable<Company>> GetCompaniesAsync(IEnumerable<Guid> companyIds);

        void AddCompany(Company company);

        void DeleteCompany(Company company);

        void UpdateCompany(Company company);

        Task<bool> CompanyExistsAsync(Guid companyId);

        Task<int> SaveAsync();
    }
}